﻿/*
 * 假设我们正在开发一个图形编辑器，这个编辑器可以绘制圆形和矩形。
 * 同时，用户可以选择多种颜色来填充形状，例如红色、绿色或蓝色。
 * 我们可以创建两个类层次结构：
 * 一个是表示形状（Shape）的抽象类层次结构，
 * 另一个是表示颜色（Color）的抽象类层次结构。
 * 然后，我们可以通过桥接（Bridge）模式将这两个类层次结构关联起来
 */

// 形状接口
public interface IShape
{
    void Draw();
}

// 实现形状接口的具体类
class Circle : IShape
{
    public void Draw()
    {
        Console.WriteLine("Drawing Circle");
    }
}

class Rectangle : IShape
{
    public void Draw()
    {
        Console.WriteLine("Drawing Rectangle");
    }
}

// 颜色接口
public interface IColor
{
    void Fill();
}

// 实现颜色接口的具体类
class Red : IColor
{
    public void Fill()
    {
        Console.WriteLine("Filling with red color");
    }
}

class Green : IColor
{
    public void Fill()
    {
        Console.WriteLine("Filling with green color");
    }
}

class Blue : IColor
{
    public void Fill()
    {
        Console.WriteLine("Filling with blue color");
    }
}

// 主函数
//public class Program
//{
//    static void Main(string[] args)
//    {
//        // 创建形状对象
//        IShape circle = new Circle();
//        IShape rectangle = new Rectangle();

//        // 创建颜色对象
//        IColor red = new Red();
//        IColor green = new Green();
//        IColor blue = new Blue();

//        // 绘制红色圆形
//        circle.Draw();
//        red.Fill();

//        // 绘制绿色矩形
//        rectangle.Draw();
//        green.Fill();

//        // 绘制蓝色圆形
//        circle.Draw();
//        blue.Fill();

//        // 绘制红色矩形
//        rectangle.Draw();
//        red.Fill();
//    }
//}